In an increasingly networked world, more and more traffic, such as data, voice, and video, is transmitted over public and proprietary networks. When routing traffic through the network, it is desirable to be able to assign different types of traffic different priorities as the traffic traverses the network. Some applications require stringent limits on end-to-end traffic delay while other applications require minimal bandwidth guarantees. For example, because streaming video and voice data, when it is delayed, can result in a noticeable degradation in quality to the end-user, it may be desirable to assign this type of traffic a higher priority than other traffic.
In Internet Protocol (IP) packet-based networks, network devices such as routers and switches may handle the transmission of the packets through the network. Packets belonging to different traffic classes may be given different priorities by the routers/switches. The routers/switches may allocate network resources (such as bandwidth) to the traffic classes based on predetermined bandwidth allocation policies. For example, within the router/switch, packets of different traffic classes that are routed to the same output port may share the link resources of the output port. When the incoming traffic data rate exceeds the output port link capacity, the packets may be buffered and the bandwidth allocation policies applied.
Currently, the bandwidth allocation policies for a router/switch may be performed by an operator that sets or fine tunes a number of parameters. For example, the operator may need to define and fine-tune a number of class of service (CoS) attributes, buffer parameters, or scheduler configurations, such as classifiers, rewrites, forwarding classes, and schedulers/scheduler-maps, and then apply these policies to the ports of the router/switch. Many of these parameters that are set or fine-tuned by the operator are parameters that are relatively esoteric and difficult for someone without a lot of training to understand.